0101. 对称二叉树【简单】
1. 📝 题目描述
给你一个二叉树的根节点 root, 检查它是否轴对称。
示例 1:

txt
输入:root = [1,2,2,3,4,4,3]
输出:true1
2
2
示例 2:

txt
输入:root = [1,2,2,null,3,null,3]
输出:false1
2
2
提示:
- 树中节点数目在范围
[1, 1000]内 -100 <= Node.val <= 100
进阶:你可以运用递归和迭代两种方法解决这个问题吗?
2. 🎯 s.1 - 暴力解法
js
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {TreeNode} root
* @return {boolean}
*/
var isSymmetric = function (root) {
if (!root) return true
// 辅助函数,用于判断两个子树是否镜像对称
function isMirror(left, right) {
// 如果两个节点都为空,则对称
if (!left && !right) return true
// 如果只有一个节点为空,则不对称
if (!left || !right) return false
// 如果两个节点值不相等,则不对称
if (left.val !== right.val) return false
// 递归判断:左子树的左子树与右子树的右子树对称,
// 且左子树的右子树与右子树的左子树对称
return isMirror(left.left, right.right) && isMirror(left.right, right.left)
}
// 判断根节点的左右子树是否镜像对称
return isMirror(root.left, root.right)
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34